<?php

/* dans ce module : 
*  - le paramètre 'action' détermine la fonction à appeler
*  - par défaut, affiche un formulaire, inclus à partir d'un fichier
*  - action='valide' : contrôle le formulaire et exécute un traitement, retourne à l'accueil
*/


require_once("/../../toolbox/header.php");
require_once("/../../includes/Formulaire.class.php");
require_once("/../../includes/Params.ini.php");
require_once("/../../includes/DB.class.php");
require_once("/../../includes/Session.class.php");
require_once("/../../classes/Membre.class.php");
Header::set_title("Inscription");
Header::set_javascript("
function TestPseudo(callback) {
var pseudo = document.getElementById(\"pseudo\").value;
if(pseudo != \"\") {
var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {

	
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			callback(xhr.responseText);
		}
	};
	var chaine = 'modules/inscription/module.php?ajax_pseudo='+pseudo;
	xhr.open(\"GET\", chaine, true);
	
	xhr.send(null);
	}
	else document.getElementById(\"testPseudo\").innerHTML='';
}

function readData(Data) {
	if(Data == 0)
		document.getElementById(\"testPseudo\").innerHTML=\"<span id='ok'>Le pseudo est libre.</span>\";
	else
		document.getElementById(\"testPseudo\").innerHTML=\"<span id='notok'>Le pseudo est déjà pris.</span>\";
}
");
Header::set_javascript("
function TestPassword() {
var pass1 = document.getElementById(\"pass1\").value;
var pass2 = document.getElementById(\"pass2\").value;


if(pass1 == pass2 && pass1 != \"\" && pass2 != \"\")
	document.getElementById(\"testPass\").innerHTML=\"<span id='ok'>Les mots de passe sont identique.</span>\";
else if(pass1 != \"\" && pass2 != \"\")
	document.getElementById(\"testPass\").innerHTML=\"<span id='notok'>Les mots de passe sont différents.</span>\";
else
	document.getElementById(\"testPass\").innerHTML='';
}
");
Header::set_javascript("
function TestEmail() {
if(document.getElementById(\"email\").value != \"\") {
var Expression = new RegExp('^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$');

if(Expression.test(document.getElementById(\"email\").value))
	document.getElementById(\"testMail\").innerHTML=\"<span id='ok'>L'email est correcte.</span>\";
else
	document.getElementById(\"testMail\").innerHTML=\"<span id='notok'>L'email est incorrect.</span>\";
}
else
	document.getElementById(\"testMail\").innerHTML='';
}
");





	
if(!empty($_GET['ajax_pseudo'])) ajax_check_pseudo();
else {
	switch ( Form::get('action') )
	{
		case 'valide':
			if(!Session::IsOpen('membre')) traitement();
			else Site::message_info("Vous êtes connecté");
		break;
		default:
			if(!Session::IsOpen('membre')) afficheform();
			else Site::message_info("Vous êtes connecté");
		break;
	}
}



function afficheform(){
	include 'form-saisie.php';
}

function ajax_check_pseudo()
{
	$pseudo=$_GET['ajax_pseudo'];
	if(DB::ExistMember($pseudo) == true) echo 1;
	else echo 0;
}


function traitement(){
	if( Form::get('pseudo')=='' || Form::get('email')==''||Form::get('mdp')=='' || Form::get('mdp_conf')=='' ){
		
		Site::message_info("Tous les champs obligatoires n'ont pas été saisis".print_r($_POST,true));
		afficheform();	
	
	}else if(Membre::CheckPseudo(Form::get('pseudo')) == 0) {
	
		if(Membre::CheckEmail(Form::get('email'))) {
	
			if(strcmp(Form::get('mdp'), Form::get('mdp_conf')) == 0){
				$user = new Membre();
				$user->Create(Form::get('pseudo'), Membre::Hash(Form::get('mdp')), Form::get('email'), time());
				$user->Save();
			


				Site::message_info("Formulaire traité correctement");			
				Site::redirect("index.php");	
			}
			else {
			Site::message_info("Le mot de passe et la confirmation ne correspondent pas.".print_r($_POST,true));
			afficheform();
			}
		}
		else {
			Site::message_info("L'adresse email est invalide.".print_r($_POST,true));
			afficheform();
		}
		
		
	}
	else {
	
		switch(Membre::CheckPseudo(Form::get('pseudo'))) {
			case 1: 
			Site::message_info("Le pseudo est invalide.".print_r($_POST,true));
			break;
			case 2:
			Site::message_info("Le pseudo existe déjà".print_r($_POST,true));
			break;
			case 3:
			Site::message_info("Le pseudo est trop long".print_r($_POST,true));
		}
		afficheform();
	
	
	}
	
	



}




?>